iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
Software Development

跟著 OXXO 一起學 Python系列 第 8

( Day 5.3 ) Python 重複迴圈 ( for、while )

  • 分享至 

  • xImage
  •  

在程式執行的過程中,有時候會重複執行一些相同的運算,這時可以使用「迴圈」來處理這些重複且相同的程式碼,大幅增加程式的可閱讀性以及撰寫程式的效率,本篇教學會介紹 for 迴圈與 while 迴圈,以及 break 中斷命令與 continue 跳過命令。

原文參考:重複迴圈 ( for、while )

本篇使用的 Python 版本為 3.7.12,所有範例可使用 Google Colab 實作,不用安裝任何軟體 ( 參考:使用 Google Colab )

for 迴圈

「for 迴圈」的使用的方法為「for 變數 in 可迭代的物件:」,執行之後,for 迴圈會依序將可以迭代的物件取出,賦值給指定的變數 ( 可迭代的物件像是字串、串列、字典、集合...等 )。

for 迴圈內容執行的程式區塊,採用縮排的方式 ( 參考:縮排 )。

for i in 'abc':
    print(i)    # a  b  c ( 字串 )

for i in ['a','b','c']:
    print(i)    # a  b  c ( 串列 )

for i in {'a','b','c'}:
    print(i)    # c  b  a ( 集合 )

for i in {'a':1,'b':2,'c':3}:
    print(i)    # a  b  c ( 字典 )

如果將 for 迴圈放在 for 迴圈裡,就會形成「巢狀迴圈」,巢狀迴圈會先從「最內層」的迴圈開始執行,執行完畢後再執行外層的迴圈,下方的程式碼,會先印出 b 的 1、2、3,印完後印出第一個 a 的 x,接著再次印出 b,依此類推。

for a in ['x','y','z']:
    for b in [1,2,3]:
        print(b)
  print(a)

# 1 2 3 x 1 2 3 y 1 2 3 z

如果搭配文字的格式化 ( 參考:文字格式化 format ),就能利用巢狀迴圈做出有趣的效果,下方的程式碼,會將 x、y、z 結合 1、2、3。

for a in ['x','y','z']:
    for b in [1,2,3]:
        print(f'{a}{b}')

# x1 x2 x3 y1 y2 y3 z1 z2 z3

while 迴圈

「while 迴圈」是「根據條件判斷,決定是否重複或停止」的迴圈,用法為「while 條件:」,如果條件判斷為 True,就會不斷執行迴圈內容,如果判斷為 False,就會停止迴圈,下方的程式執行後,會不斷將 a 增加 1,直到 a 等於 6 為止。

while 迴圈內容執行的程式區塊,採用縮排的方式 ( 參考:縮排 )。

a = 1
while a<=5:
    print(a)
    a += 1

# 1 2 3 4 5

break 和 continue

在操作迴圈的過程中,可以使用「break 中斷」和「continue 跳出」兩個方法來「停止迴圈」,通常 break 和 continue 會搭配邏輯判斷一同使用。( 參考:邏輯判斷 ( if、elif、else ) )

break 和 continue 的差別在於 break 會將整個迴圈停止,而 continue 是將迴圈目前執行的程式停止,然後再次執行迴圈,下圖為兩者的執行差異。

Python 教學 - break 和 continue

下方的程式可以看出,因為內層迴圈使用了 break,碰到 b 為 1 的時候就會停止,就看不見 2 和 3

for a in ['x','y','z']:
    for b in [1,2,3]:
        if(b==2):
            break
        print(f'{a}{b}')
print('ok')

# x1 y1 z1 ok

如果使用 continue,則會略過 b 為 2 的部分,直接跳到 b 為 3 的部分

for a in ['x','y','z']:
    for b in [1,2,3]:
        if(b==2):
            continue
        print(f'{a}{b}')
print('ok')

# x1 x3 y1 y3 z1 z3 ok

更多教學

大家好,我是 OXXO,是個即將邁入中年的斜槓青年,我有個超過一千篇教學的 STEAM 教育學習網,有興趣可以參考下方連結呦~ ^_^


上一篇
( Day 5.2 ) Python 邏輯判斷 ( and 和 or )
下一篇
( Day 6.1 ) Python 數字 number
系列文
跟著 OXXO 一起學 Python101
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言